package com.code.splider.common.util;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang3.ArrayUtils;


/**
 * 数组工具类
 * 
 * 
 * @author Jianhua Xu
 * 2016年3月16日
 *
 */
public class SXArrayUtils {
	
	public static boolean isEmpty(Object[] arr){
		return arr==null||arr.length<=0;
	}
	
	/**
	 * 将array分割成多个长度为size的小数组(最后一个存放剩余的元素)，并返回
	 * @param array
	 * @param size
	 * @return
	 */
	public static List<Object[]> split(Object[] array,int size){
		if(array==null||array.length<=0){
			return null;
		}
		double srcSize = array.length;
		int newListSize = (int) Math.ceil(srcSize/size);
		List<Object[]> nl = new ArrayList<Object[]>(newListSize);
		int fromIndex = 0;
		int toIndex = 0;
		while(newListSize>0){
			fromIndex = toIndex;
			if(newListSize==1){//最后一次数量数量有可能减少，因此通过list的size获取toIndex
				toIndex = array.length;
			}else{
				toIndex = fromIndex+size;
			}
			Object[] subArray = ArrayUtils.subarray(array, fromIndex, toIndex);
			nl.add(subArray);
			newListSize--;
		}
		return nl;
	}

}
